import request from "@/request";

// 管理员数据类型
export interface AdminItem {
  adminid: string
  adminname: string
  password?: string
  email?: string
  phone?: string
  roles: string[]
  roleKeys: string[]
  checkedKeys: string[]
  menuList: string[]
  permissionList: string[]
  permissionBtnList: string[]
  departmentName?: string
  status?: boolean
  createTime?: string
  lastLoginTime?: string
}

// 添加管理员表单类型
export interface AddAdminType {
  username: string
  password: string
  email?: string
  phone?: string
  role: string
  status: boolean
}

// 修改管理员信息类型
export interface EditAdminType {
  username?: string
  password?: string
  email?: string
  phone?: string
  role?: string
  status?: boolean
}

// 获取管理员基本信息
export function getAdminInfo() {
  return request({
    url: '/admin',
    method: 'get'
  })
}

// 删除管理员
export function deleteAdmin() {
  return request({
    url: '/admin',
    method: 'delete'
  })
}

// 添加管理员
export function addAdmin(body: AddAdminType) {
  return request({
    url: '/admin',
    method: 'post',
    data: body
  })
}

// 获取管理员详情（根据adminid）
export function getAdminDetail(adminid: string) {
  return request({
    url: '/admin/admin/detail',
    method: 'get',
    params: {
      adminid
    },
    headers: {
      'token': localStorage.getItem('token') || ''
    }
  })
}

// 管理员列表（保留原有接口作为备用）
export function getAdminList() {
  return request({
    url: '/admin/admin/list',
    method: 'get'
  })
}

// 管理系统登录
export function adminLogin(username: string, password: string) {
  return request({
    url: '/admin/login',
    method: 'post',
    data: {
      username,
      password
    }
  })
}

// 获取管理员信息（带ID）
export function getAdminById(id: number) {
  return request({
    url: `/admin/${id}`,
    method: 'get'
  })
}

// 编辑管理员信息
export function editAdmin(id: number, data: EditAdminType) {
  return request({
    url: `/admin/${id}`,
    method: 'patch',
    data
  })
}

// 删除指定管理员
export function deleteAdminById(id: number) {
  return request({
    url: `/admin/${id}`,
    method: 'delete'
  })
}

// 获取管理员详情（兼容旧版本，通过ID获取）
export function getAdminDetailById(id: number) {
  return getAdminById(id)
}
